<?php

namespace Superadmin\Controller;

use Zend\Mvc\Controller\AbstractActionController;
use Zend\View\Model\ViewModel;
use Superadmin\Model\Utility;
use Superadmin\Model\Video;

class VideoController extends AbstractActionController {

    protected $VideoTable;
    protected $CategoriesTable;
    public $rowper = 10;

    public function getVideoTable() {
        if (!$this->VideoTable) {
            $pst = $this->getServiceLocator();
            $this->VideoTable = $pst->get("Superadmin\Model\VideoTable");
        }
        return $this->VideoTable;
    }

    public function getCategoriesTable() {
        if (!$this->CategoriesTable) {
            $pst = $this->getServiceLocator();
            $this->CategoriesTable = $pst->get('Superadmin\Model\CategoriesTable');
        }
        return $this->CategoriesTable;
    }

    public function __construct() {
        
    }

    public function indexAction() {

        $keycate = "";
        $listcate = $this->getCategoriesTable()->showcate($keycate);

        $request = $this->getRequest();
        if ($request->isPost()) {
            $actionDo = $request->getPost('do');
            if ($actionDo == "showall") {
                $this->showVideos();
            } else if ($actionDo == "del") {
                $request = $this->getRequest();
                $videoId = addslashes(trim($request->getPost('videoId')));
                $checkdel = $this->getVideoTable()->delVideos($videoId);
                if ($checkdel) {
                    echo "Xóa videos thành công.*codebyduypc*ok";
                } else {
                    echo"Xóa videos không thành công.*codebyduypc*notok";
                }
                die;
            }
            if ($request->getPost('btn') == "btn") {

                $this->addVideos();
            } if ($actionDo == "dataedit") {

                $this->showdataedit();
            }
            if ($request->getPost('btnedit') == "btnedit") {
               
                $this->editVideo();
            }
        }
        return array("listcate" => $listcate);
    }

    public function showVideos() {
        $objul = new Utility();
        $request = $this->getRequest();
        $sortbycol = addslashes(trim($request->getPost('sortbycol')));
        $sortby = addslashes(trim($request->getPost('sortby')));
        $key = addslashes(trim($request->getPost('key')));
        $numpage = (int) addslashes(trim($request->getPost('numpage')));
        $this->rowper = $numpage;
        $cateId = addslashes(trim($request->getPost('cateId')));
        $start = addslashes(trim($request->getPost('page')));
        $flag = addslashes(trim($request->getPost('flag')));
        $listvideos = $this->getVideoTable()->loadVideo($start, $this->rowper, $key, $cateId, $sortbycol, $sortby);
        $countListvideos = ceil($this->getVideoTable()->countLoadVideo($key, $cateId) / $this->rowper);


        $view = "";

        foreach ($listvideos as $keyVideos => $listData) {
            $view.='<tr id="' . $listData["videoId"] . '">' .
                    '<input type="hidden" id="' . $keyVideos . '" value="' . $listData["videoId"] . '"/>
            ' .
                    '<td>' . ($keyVideos + 1) . '</td>' .
                    '<td>' . $listData["videoTitle"] . '</td>' .
                    '<td>' . $listData["cateName"] . '</td>' .
                    '<td>' . $objul->tooltipString($listData["videoDescription"], 30) . '</td>' .
                    '<td>' . $objul->formatDate($listData["videodate"]) . '</td>' .
                    '<td>' .
                    '<a href="javascript:void(0);" onclick="dataedit(' . $keyVideos . ')" title="Edit" class="btn btn-xs btn-outline btn-success add-tooltip"><i class="fa fa-pencil"></i></a>' .
                    '<a href="javascript:void(0);" onclick="delvideo(' . $keyVideos . ')" title="Delete" class="btn btn-xs btn-outline btn-danger add-tooltip"><i class="fa fa-times"></i></a>' .
                    '</td>' .
                    '</tr>';
        }
        if ($countListvideos > 1) {
            $view.="<tr><td colspan='6'>";
            for ($i = 0; $i < $countListvideos; $i++) {
                $page = $i + 1;
                $view .= '<a href="javascript:void(0);" onclick="showall(' . $page . ',' . $flag . ');" title="" class="pagevideos">' . $page . '</a>';
            }

            $view.="</tr><td>";
        }
        echo $view;
        die;
    }

    private function addVideos() {

        $objul = new Utility();
        $request = $this->getRequest();
        $time = time();
        $timeencode = base64_encode($time);
        $videoId = str_replace("=", "", $timeencode);
        $titleVideo = addslashes(trim($objul->removescript($request->getPost('titlevideos'))));
        $desVideo = addslashes(trim($objul->removescript($request->getPost('desvideos'))));
        if ($desVideo == null) {
            $desVideo = "Chưa có mô tả cho video này.";
        }
        $cateId = addslashes(trim($objul->removescript($request->getPost('categories'))));
        $frame = addslashes(trim($request->getPost('iframevideos')));
        $datecreat = date('Y:m:d');
        //upload img
        $urlimg = addslashes(trim($request->getPost("urlimg")));
        $imgrv = "";
        $temp_avata = "";
        if ($urlimg != null) {
            $imgrv = $urlimg;
            $temp_avata = $urlimg;
        } else {
            $imgrv = $_FILES["imgvideos"]["name"];
            $temp_avata = $_FILES['imgvideos']['tmp_name'];
        }
//check url


        $urlavatapath = APPLICATION_PATH . URL_UPLOAD;

        $ext = substr(strrchr($imgrv, '.'), 1);
        $filename = time() . "." . $ext;
        $urlavata = $urlavatapath . "/imgvideo/" . $filename;

        $abc = @copy($temp_avata, $urlavata);

        if ($abc < 1) {
            echo "Ảnh này không tồn tại.";
            die;
        } else {
            echo "Ảnh hợp lệ.";
        }

        $urlimgadd = "imgvideo/" . $filename;
        //end upload img
        //start add data
        $data = array();
        $data["videoId"] = $videoId;
        $data["videoTitle"] = $titleVideo;
        $data["videoIframe"] = $frame;
        $data["videoimg"] = $urlimgadd;
        $data["videoDescription"] = $desVideo;
        $data["videodate"] = $datecreat;
        $data["cateId"] = $cateId;
        $objVideo = new Video();
        $objVideo->axchangeArray($data);
        $adddata = $this->getVideoTable()->addNew($objVideo);
        if ($adddata) {
            echo"Thêm mới videos thành công.";
        } else {
            echo "Thêm mới videos thất bại.";
        }
        //end add data
        die;
    }

    private function showdataedit() {
        $request = $this->getRequest();
        $videoId = addslashes(trim($request->getPost('videoId')));
        $data = $this->getVideoTable()->getdataedit($videoId);
        $listcate = $this->getCategoriesTable()->showcate("");
        $view = "";
        //start
        $view.='<form style="border:0px !important;" method="post" name="editvideos" class="panel form-horizontal" id="formimagesvcb" action="" enctype="multipart/form-data" onsubmit="return AIM.submit(this, {\'onStart\': startCallbackup, \'onComplete\': completeCallbackup})">' .
                '<div class="form-group has-success">' .
                '<label for="inputPassword" class="col-sm-2 control-label">Tiêu đề videos</label>' .
                '<div class="col-sm-10">' .
                '<input type="text" value="' . $data["videoTitle"] . '" required class="form-control" name="titlevideosedit" id="catename" placeholder="Nhập tiêu đề videos.">' .
                '<input type="hidden" value="' . $data["videoId"] . '"  name="videoId"/>' .
                '<input type="hidden" value="1"  id="flageditdata" name="flageditdata"/>' .
                '<p class="help-block">Ví dụ :Em của ngày hôm qua.</p>' .
                '</div>' .
                '</div> <!-- / .form-group -->' .
                '<div class="form-group">' .
                '<label for="inputPassword" class="col-sm-2 control-label">Chuyên mục</label>' .
                '<div class="col-sm-10">' .
                '<select name="categoriesedit">';
        foreach ($listcate as $key => $listdatacate) {
            if ($listdatacate["cateId"] == $data["cateId"]) {
                $view.= '<option selected="true" value="' . $listdatacate["cateId"] . '">' . $listdatacate["cateName"] . '</option>';
            } else {
                $view.= '<option value="' . $listdatacate["cateId"] . '">' . $listdatacate["cateName"] . '</option>';
            }
        }
        $view.='</select>' .
                ' </div>' .
                '</div> <!-- / .form-group -->' .
                '<div class="form-group has-success">' .
                '<label for="inputPassword" class="col-sm-2 control-label">Mô tả</label>' .
                '<div class="col-sm-10">' .
                '<textarea class="form-control textf" id="descate" name="desvideosedit" rows="3">' . $data["videoDescription"] . '</textarea>' .
                '<p class="help-block">Ví dụ :Em của ngày hôm qua - Ca sĩ thể hiện Sơn tùng.(Mặc định :Chưa có mô tả cho videos này.)</p>' .
                '</div>' .
                '</div> <!-- / .form-group -->' .
                '<!--img -->' .
                '<div class="form-group has-success" id="imghientai">' .
                '<label for="inputPassword" class="col-sm-2 control-label">Hình ảnh</label>' .
                '<div class="col-sm-10">' .
                '<img style="height: 50px;" src="' . WEB_PATH_HEADER . $data["videoimg"] . '"/><br/>' .
                '<input type="hidden" value="' . $data["videoimg"] . '" name="flagImg"/>' .
                '<a href="javascript:void(0);" onclick="effchangeimg(1);" title="Thay ảnh"><i class="fa fa-times-circle-o"></i> Thay ảnh</a>' .
                '</div>' .
                '</div> <!-- / .form-group -->' .
                '<!--img -->' .
                '<div class="form-group has-success" id="editimgthumb" style="display: none;">' .
                '<label for="inputPassword" class="col-sm-2 control-label">HÌnh ảnh</label>' .
                '<div class="col-sm-10">' .
                '<script>' .
                'init.push(function () {' .
                '$("#styled-finputs-exampleedit").pixelFileInput({ placeholder: "Hoặc chọn file để tải lên từ máy tính của bạn...." });' .
                '})' .
                '</script>' .
                '<input type="text" name="urlimgedit" id="urlimg" class="form-control" placeholder="Hãy nhập url hình ảnh muốn lấy về."/>' .
                '<p class="help-block">Ví dụ :http://duypc.vn/vidu.jpg</p><br/>' .
                '<input type="file" name="imgvideosedit" id="styled-finputs-exampleedit" />' .
                '<p class="help-block" style="color: red;">Hoặc chọn ảnh để tải lên từ máy tính của bạn.</p><br/>' .
                '<a href="javascript:void(0);" onClick="effchangeimg(2);" class="btn btn-warning "><i class="fa fa-times"></i> Hủy bỏ</a>' .
                '</div>' .
                '</div> <!-- / .form-group -->' .
                '<div class="form-group has-success">' .
                '<label for="inputPassword" class="col-sm-2 control-label">IFrame</label>' .
                '<div class="col-sm-10">' .
                '<textarea class="form-control textf" id="descate" required name="iframevideosedit" rows="3">' . $data["videoIframe"] . '</textarea>' .
                '<p class="help-block">Ví dụ :' . htmlspecialchars("<irame src='Đường dẫn videos'></irame>") . '</p>' .
                '</div>' .
                '</div> <!-- / .form-group -->' .
                '<div class="form-group" style="margin-bottom: 0;">' .
                '<div class="col-sm-offset-2 col-sm-10">' .
                '<button type="submit" name="btnedit" value="btnedit" class="btn btn-success "><i class="fa fa-upload"></i> Cập nhật</button>' .
                '<a href="javascript:void(0);" onClick="closeedit();" class="btn btn-warning "><i class="fa fa-times"></i> Hủy bỏ</a>' .
                '</div>' .
                '</div> <!-- / .form-group -->' .
                '</form>' .
                '<script>' .
                'function startCallbackup() {' .
                '$("#fullloadding").show(10);' .
                'return true;' .
                '}' .
                'function completeCallbackup(response) {' .
                'alert(response);'.
                '//showall(1);' .
                '}' .
                '</script>';
        //end
        echo $view;
        die;
    }

    private function editVideo() {
        $request = $this->getRequest();
        $objul = new Utility();
        $videoId = addslashes(trim($objul->removescript($request->getPost('videoId'))));
       
        $titleVideo = addslashes(trim($objul->removescript($request->getPost('titlevideosedit'))));
        $videoDes = addslashes(trim($objul->removescript($request->getPost('desvideosedit'))));
        $videoCate = addslashes(trim($objul->removescript($request->getPost('categoriesedit'))));
        $videoFrame = addslashes(trim($objul->removescript($request->getPost('iframevideosedit'))));
        $videoFlagImg = addslashes(trim($objul->removescript($request->getPost('flageditdata'))));
        $urlImgdata = "";
        if ($videoFlagImg == "1") {
            $urlImgdata = addslashes(trim($objul->removescript($request->getPost('flagImg'))));
        } else {
            //lai phai upload roi. met qua.
            $urlimg = addslashes(trim($request->getPost("urlimgedit")));
            $imgrv = "";
            $temp_avata = "";
            if ($urlimg != null) {
                $imgrv = $urlimg;
                $temp_avata = $urlimg;
            } else {
                $imgrv = $_FILES["imgvideosedit"]["name"];
                $temp_avata = $_FILES['imgvideosedit']['tmp_name'];
            }
//check url


            $urlavatapath = APPLICATION_PATH . URL_UPLOAD;

            $ext = substr(strrchr($imgrv, '.'), 1);
            $filename = time() . "." . $ext;
            $urlavata = $urlavatapath . "/imgvideo/" . $filename;

            $abc = @copy($temp_avata, $urlavata);

            if ($abc < 1) {
                echo "Ảnh này không tồn tại.";
                die;
            } else {
                echo "Ảnh hợp lệ.";
            }
//thuc hien xoa anh cu.
            $this->getVideoTable()->delImg($videoId);
            $urlImgdata = "imgvideo/" . $filename;
            //end
        }
        //start update
        $data = array();

        $data["videoTitle"] = $titleVideo;
        $data["videoIframe"] = $videoFrame;
        $data["videoimg"] = $urlImgdata;
        $data["videoDescription"] = $videoDes;
        $data["cateId"] = $videoCate;
        $objVideo = new Video();
        $objVideo->axchangeArray($data);
        $checkUpdate = $this->getVideoTable()->updateVideo($videoId, $objVideo);
        if ($checkUpdate) {
            echo "Cập nhật dữ liệu thành công.";
        } else {
            echo "Lỗi hệ thống.Vui lòng thử lại.";
        }
        die;
    }

}
